交换或者说交换空间指的是存放在磁盘分区上的物理内存页,也可以理解为当物理内存耗尽时用来扩展系统RAM内存的一种特殊的磁盘文件.
使用这种扩展RAM资源的方法, 当没有RAM可用时需要不活动的内存页频繁地导到交换空间去. 然而, 受限于普通硬盘的低速度, 交换空间的传输和访问速度要比RAM慢的多.
在一款搭配了SSD硬盘的新机器上保留一部分分区作为交换相对来说要比普通的HDD快的多,但与RAM比起来还是慢了很多. 有些人会建议交换空间的大小应该设置为机器内存的两倍大小. 然而在达到或者超过4GB内存的系统上,交换空间的大小设成2到4GB就够了.
若你的服务器上内存充足无需使用交换空间或者交换会极大地拖慢系统的性能, 那么你就应该考虑禁用交换空间了.
在开始真正禁用交换空间之前, 首先你需要查看一下内存的负载情况,然后查看交换空间存储在哪个分区上, 输入下面命令.
# free -h
查看交换分区使用了多少空间. 若使用的空间为0B或者接近0字节, 则可以认为交换空间使用不那么频繁,可以安全地禁用掉.
再然后, 输入下面的 blkid
命令, 注意 TYPE=”swap”
这一行表示的是交换分区, 显示结果如下.
# blkid
再用下面的 lsblk
命令搜索并确认交换分区([SWAP]).
# lsblk
确认了交换分区/文件后, 执行下面命令来禁用交换空间.
# swapoff /dev/mapper/centos-swap
或者禁用 /proc/swaps
中的所有交换空间
# swapoff -a
运行 free命令 确认交换空间被禁用了.
# free -h
为了永久禁用交换空间, 打开 /etc/fstab
文件, 搜索 swap 行并在前面增加 # (井号) 来注释掉整个行, 如下图所示.
# vi /etc/fstab
之后, 重启系统以便使新的交换设置生效,或者直接执行 mount -a
命令也行.
# mount -a
系统重启后, 输入上面提到e的那些命令来看交换空间是否已经永久地被禁用了.
# free -h
# blkid
# lsblk